﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using vudu.Logica.Comandos;
using vudu.ClasesDominio;

using vudu.Logica.Clases;// mientras migran a ClasesDominio las clases de HorarioDeClase y Salon

namespace vudu.Logica.Fabrica
{
    public class FabricaComando
    {
        public static ComandoAgregarMateria CrearComandoAgregarMateria(Materia materia)
        {
            return new ComandoAgregarMateria(materia);
        }

        #region Comandos GRUPO 2

        public static ComandoAgregarPractica CrearComandoAgregarPractica(Practica practica, int idSeccionMateria,
                                                                         List<HorarioDeClase> horario,
                                                                         List<Salon> salones)
        {
            return new ComandoAgregarPractica(practica, idSeccionMateria, horario, salones);
        }

        public static ComandoObtenerMateriasActivasConSeccTeoria CrearComandoObtenerMateriasActivasConSeccTeoria(
            string nombreEscuela)
        {
            return new ComandoObtenerMateriasActivasConSeccTeoria(nombreEscuela);
        }

        public static ComandoArmarEscuela CrearComandoArmarEscuela(string correoEscuela)
        {
            return new ComandoArmarEscuela(correoEscuela);
        }

        public static ComandoArmarListaDeSeccionesDisponibles CrearComandoArmarListaDeSeccionesDisponibles(int idEscuela, int idMateria)
        {
            return new ComandoArmarListaDeSeccionesDisponibles (idEscuela,idMateria);
        }
        public static ComandoConsultarProfesores CrearComandoConsultarProfesores(int idEscuela)
        {
            return new ComandoConsultarProfesores(idEscuela);
        }
        #endregion

        public static ComandoAgregarEscuela CrearComandoAgregarEscuela(Escuela nuevaEscuela, String universidad)
        {
            return new ComandoAgregarEscuela(nuevaEscuela, universidad);
        }

        public static ComandoConsultarEscuela CrearComandoConsultarEscuela(String universidad)
        {
            return new ComandoConsultarEscuela(universidad);
        }

        #region Comandos GRUPO 4

        public static ComandoLlenarComboRegistroUni CrearComandoLlenarComboUniversidad()
        {
            return new ComandoLlenarComboRegistroUni();
        }

        public static ComandoLlenarComboRegistroEscuela CrearComandoLlenarComboEscuela()
        {
            return new ComandoLlenarComboRegistroEscuela();
        }

        public static ComandoLlenarComboMateriasProfesor CrearComandoLlenarComboMateriasProfesor(Profesor profesor)
        {
            return new ComandoLlenarComboMateriasProfesor(profesor);
        }

        public static ComandoAgregarEsquemaEvaluacion CrearComandoAgregarEsquemaEvaluacion(Evaluacion evaluacion)
        {
            return new ComandoAgregarEsquemaEvaluacion(evaluacion);
        }

        #endregion

        #region comandos grupo 1

        public static ComandoConsultarMateriasPrematricula CrearComandoConsultarMateriasPrematricula(
            Estudiante estudiante, int semestreActual)
        {
            return new ComandoConsultarMateriasPrematricula(estudiante, semestreActual);
        }

        public static ComandoConsultarSeccionesDeUnaMateria CrearComandoConsultarSeccionesDeUnaMateria(Materia materia)
        {
            return new ComandoConsultarSeccionesDeUnaMateria(materia);
        }

        public static ComandoConsultarHorarioDeClaseSeccion CrearComandoConsultarHorarioDeClaseSeccion(SeccionMateria seccionMateria)
        {
            return new ComandoConsultarHorarioDeClaseSeccion(seccionMateria);
        }
        #endregion

        #region Comandos GRUPO 8 
        public static ComandoAgregarProfesor CrearComandoAgregarProfesor(Profesor profesor, int idEscuela)
        {
            return new ComandoAgregarProfesor(profesor,idEscuela);
        }
        #endregion



    }
}